public class Demo9 {
    public static void main(String[] args){
        Thread t = new Thread(()->{
           while(!Thread.currentThread().isInterrupted()){
               System.out.println("线程正在工作!");
               try {
                   Thread.sleep(1000);
               } catch (InterruptedException e) {
                   // 1.假装没有听见,循环继续正常执行
                   e.printStackTrace();
                   // 2.加上一个break,让线程立即结束
                   // 3.做一些其他工作,其他工作完成之后结束
                   // 其他工作的代码放这里
                   break;
               }
           }
        });

        // 报错是因为虽然 t.interrupt() 使 !Thread.currentThread().isInterrupted() 为false了
        // 但是是引得sleep发生了异常,发生的异常清除了 !Thread.currentThread().isInterrupted()的标志位
        t.start();
        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }
        t.interrupt();
    }
}
